package cn.coastalinfo.project.drools.service;

import cn.coastalinfo.project.drools.domain.RuleVariable;
import cn.hutool.core.lang.tree.Tree;
import cn.coastalinfo.project.drools.domain.RuleCondition;
import cn.coastalinfo.project.drools.domain.vo.RuleConditionVo;
import cn.coastalinfo.project.drools.domain.bo.RuleConditionBo;

import java.util.Collection;
import java.util.List;

/**
 * 规则条件Service接口
 *
 * @author hadge
 * @date 2024-06-08
 */
public interface IRuleConditionService {

    /**
     * 查询规则条件
     */
        RuleConditionVo queryById(Long id);


    /**
     * 查询规则条件列表
     */
    List<RuleConditionVo> queryList(RuleConditionBo bo);

    /**
     * 新增规则条件
     */
    Long insertByBo(RuleConditionBo bo);

    Boolean saveTree(RuleConditionBo bo);

    Boolean saveChildren(RuleCondition ruleCondition);

    RuleCondition treeInfoByRuleId(Long ruleId);

    /**
     * 修改规则条件
     */
    Long updateByBo(RuleConditionBo bo);

    /**
     * 校验并批量删除规则条件信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    List<RuleVariable> getParams (String groupName);
}
